// 直接测试OpenAI解析结果，不经过我们的后处理
require('dotenv').config()

const OpenAI = require('openai')

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: process.env.OPENAI_BASE_URL || 'https://api.openai.com/v1',
})

async function testDirectParsing() {
  const text = '今天下午1点15分开财务现金流讨论会'
  
  const currentDate = new Date()
  const currentYear = currentDate.getFullYear()
  const currentMonth = currentDate.getMonth() + 1
  const currentDay = currentDate.getDate()
  
  const prompt = `
你是一个智能任务管理助手。请分析以下自然语言输入，并提取任务信息。

当前日期：${currentYear}年${currentMonth}月${currentDay}日

输入文本: "${text}"

请以JSON格式返回解析结果，包含以下字段：
{
  "title": "任务标题",
  "dueDate": "到期日期(YYYY-MM-DD格式，必须是${currentYear}年或之后的日期，如果没有明确时间则为null)",
  "priority": "优先级(P0/P1/P2/P3)",
  "category": "分类(work/learning/health/personal/other)",
  "tags": ["标签1", "标签2"],
  "notes": "备注信息"
}

重要规则：
- 日期处理：
  * "今天" → ${currentYear}-${currentMonth.toString().padStart(2, '0')}-${currentDay.toString().padStart(2, '0')}
  * "明天" → 今天+1天
  * "下周" → 今天+7天
  * 如果有具体时间（如"下午1点15分"），仍然要提取日期部分

只返回JSON格式，不要其他文字。
`

  try {
    console.log('🧪 直接测试OpenAI解析...')
    console.log('📝 输入文本:', text)
    console.log('📅 当前日期:', `${currentYear}-${currentMonth.toString().padStart(2, '0')}-${currentDay.toString().padStart(2, '0')}`)
    console.log('')
    
    const completion = await openai.chat.completions.create({
      model: process.env.OPENAI_MODEL || 'gpt-3.5-turbo',
      messages: [
        {
          role: 'system',
          content: '你是一个专业的任务管理助手，擅长解析自然语言并提取任务信息。'
        },
        {
          role: 'user',
          content: prompt
        }
      ],
      max_tokens: 1000,
      temperature: 0.7,
    })

    const response = completion.choices[0]?.message?.content
    console.log('🤖 OpenAI原始响应:')
    console.log(response)
    console.log('')
    
    // 尝试解析JSON
    try {
      let jsonContent = response.trim()
      
      // 如果响应包含Markdown代码块，提取其中的JSON
      if (jsonContent.includes('```json')) {
        const match = jsonContent.match(/```json\s*([\s\S]*?)\s*```/)
        if (match) {
          jsonContent = match[1].trim()
        }
      } else if (jsonContent.includes('```')) {
        const match = jsonContent.match(/```\s*([\s\S]*?)\s*```/)
        if (match) {
          jsonContent = match[1].trim()
        }
      }
      
      const result = JSON.parse(jsonContent)
      console.log('📊 解析结果:')
      console.log('标题:', result.title)
      console.log('日期:', result.dueDate)
      console.log('优先级:', result.priority)
      console.log('分类:', result.category)
      console.log('标签:', result.tags)
      console.log('备注:', result.notes)
      
    } catch (parseError) {
      console.log('❌ JSON解析失败:', parseError.message)
      console.log('尝试修复JSON格式...')
    }
    
  } catch (error) {
    console.log('❌ OpenAI API调用失败:', error.message)
  }
}

testDirectParsing()
